
package be.hogent.iii.project.client.netwerk;

import be.hogent.iii.project.client.gui.login.LoginFrame;
import java.net.InetAddress;

/**
 *
 * @author Dieter Van der Stock
 */
public class Connectie {
    Client client;
    Handler handler;
    Thread t;
    String ip;
    
    public Connectie(String ip) {
        try {
            this.ip = ip;
            
            //we maken de client aan, die de verbinding met de server zal maken en verzenden/ontvangen zal verzorgen
            client = new Client(InetAddress.getByName(this.ip), 9090);
            t = new Thread(client);
            t.setDaemon(true);
            
            
            //we starten de client
            t.start(); 
            
            //we maken een handler die de berichten van de server na het sturen zal verwerken
            handler = new Handler();   
        } 
        catch (Exception e) {
            System.out.println("Fout bij Connectie()" + e.getMessage());
            LoginFrame.getLoginFrame().setLabelFout("Server niet online");
        }
    }
    
    public void stuurBericht(String bericht) {
        //System.out.println("We proberen te sturen: " + bericht);
        try {
            client.queueTeVerzendenData(bericht.getBytes(), handler);
            
        } catch (Exception e) {
            System.out.println("Fout bij Connectie.stuurBericht()" + e.getMessage());
            e.printStackTrace();
        }
    }
    
    /**
     * Geeft het IP terug waar we de server op zoeken
     * @return
     */
    public String getIP() {
        return ip;
    }
    
    /**
     * Sluit de verbinding af met de server
     */
    public void sluitVerbinding() {
        try {
            System.out.println("We sluiten de verbinding met " + ip);
            client.sluitVerbinding();
        } catch(Exception ex) {
            ex.printStackTrace();
        }
    }
    
}
